package com.vf.user.domain.DTO;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.vf.common.annotation.Excel;
import com.vf.user.domain.Tags;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@AllArgsConstructor
@NoArgsConstructor
@Data
public class UsersDTO {
    /** 用户ID */
    @Excel(name = "用户ID")
    @ApiModelProperty(value = "用户ID")
    private Long userId;

    /** ID */
    @Excel(name = "ID")
    @ApiModelProperty(value = "ID")
    private Long id;

    /** 昵称 */
    @Excel(name = "昵称")
    @ApiModelProperty(value = "昵称")
    private String nickname;

    /** 邮箱 */
    @Excel(name = "邮箱")
    @ApiModelProperty(value = "邮箱")
    private String email;

    /** 加密密码 */
    @Excel(name = "加密密码")
    @ApiModelProperty(value = "加密密码")
    private String passwordHash;

    /** 职业 */
    @Excel(name = "职业")
    @ApiModelProperty(value = "职业")
    private String profession;

    /** 职业阶段 */
    @Excel(name = "职业阶段")
    @ApiModelProperty(value = "职业阶段")
    private String careerStage;

    /** 所在城市 */
    @Excel(name = "所在城市")
    @ApiModelProperty(value = "所在城市")
    private String city;

    /** 自我介绍 */
    @Excel(name = "自我介绍")
    @ApiModelProperty(value = "自我介绍")
    private String about;

    /** 期望收获 */
    @ApiModelProperty(value = "期望收获")
    @Excel(name = "期望收获")
    private String expectations;

    /** 对伙伴的期待 */
    @ApiModelProperty(value = "对伙伴的期待")
    @Excel(name = "对伙伴的期待")
    private String partnerExpectations;

    /** 能提供的帮助 */
    @Excel(name = "能提供的帮助")
    @ApiModelProperty(value = "能提供的帮助")
    private String offerings;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "创建时间")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "更新时间")
    private Date updatedAt;

    /** 信用评分 */
    @Excel(name = "信用评分")
    @ApiModelProperty(value = "信用评分")
    private BigDecimal creditScore;

    /** 爽约次数 */
    @Excel(name = "爽约次数")
    @ApiModelProperty(value = "爽约次数")
    private Long noShowCount;

    /** 标签 */
    @Excel(name = "标签")
    @ApiModelProperty(value = "标签")
    private List<TagsDTO> tags;
}
